move.bash

#!/usr/bin/env bash

# function move_help(){
    # msg_header "Shorthand with:"
    # msg_instruct "[bent move] runs [bent move project]"
    # n="$(color_li 0)"
    # d="$(color_li 1)"
    # f="${cOff}"
    # prompt_choose_function \
        # "# bent move [command] " \
        # "move_project" "project" "Move your project to another git host" \
    # ;
# }

##
#
# @tip Move your repo to another git host
function move(){
    # msg_instruct "[bent move help] for more"
    # move_project
    run move project
}

##
#
# @alias bent move
# @tip move your repo to another git host
function move_project(){
    is_project_dir || return

    # offer 'new_project' links
    msg_header "Start the new project"
    msg_ulist \
      "Github: $(url new_repo github)" \
      "Bitbucket: $(url new_repo bitbucket)" \
      "Gitlab: $(url new_repo gitlab)" \
    ;


    old_url=$(url url)
    old_remote=$(url remote)
    old_name=$(url name)
    old_delete=$(url delete)
    # ask for new project url
    prompt_or_quit "Paste new project url [ctrl+shift+v]: " projectUrl \
        || return
    # change 'origin' to 'old'
    git remote remove origin
    # set origin to new project url
    git remote add origin "${projectUrl}"
    # push all
    git push --mirror origin
    git remote add "$(date +%d_%m_%y_old)" "${old_remote}"

    msg
    msg_instruct "Check output for errors"
    prompt_enter "Project moved"

    # project moved message for README
    msg "\`\`\`diff"
    msg "- Project moved to $(url name)"
    msg "\`\`\`  "
    msg "See **[$(url)]($(url))**  "

    msg ""

    # Convenient links
    msg_header "Project Moved"
    msg_instruct "(hopefully) Helpful links"
    msg_olist \
      "Post 'Project Moved' msg (above): ${old_url}" \
      "Archive on old host: ${old_delete}" \
      "Check Default Branch: $(url default_branch)" \
      "View New Host: $(url name), $(url)" \
      "Old Host: $old_name, $old_url" \
    ;

}